package cn.gjxblog.aop.proxy.spring;
// Spring 硬编码实现代理

/**
 *  try{
 *     try{
 *         //@Before
 *         method.invoke(..);
 *     }finally{
 *         //@After 最终通知
 *     }
 *     //@AfterReturning 后置通知
 * }catch(){
 *     //@AfterThrowing
 * }
 *
 * 它俩得执行时机不同，@After先执行，@AfterReturning后执行
 * @AfterReturning它能拿到目标方法执行完的返回值，但是@After不行
 * @After它在finnaly里面，所以它不管怎么样都会执行（哪怕目标方法抛出异常），但是@AfterReturning如国目标方法没有正常return（比如抛出异常了），它是不会执行的
 */